home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Gold Collection / Software Vault - The Gold Collection (American Databankers) (1993).ISO / cdr35 / bank_ppe.zip / BANK.PPS < prev    next >
Text File  |  1993-05-12  |  5KB  |  98 lines

  1. ;*****************************************************************************
  2. ;*                                                                           *
  3. ;*                      Bank Time in User comment Record                     *
  4. ;*                                                                           *
  5. ;*                  Written in PCBoard Programming Language                  *
  6. ;*                                                                           *
  7. ;*****************************************************************************
  8. ;
  9. ; Cmd line:  bank save time nnn        bank s t nnn
  10. ;            bank restore time nnn     bank r t nnn
  11. ;            bank display              bank d
  12. ;
  13. :DEFINE_VARIABLES
  14.   STRING cmdline,cmdtoken(5),usertoken(5),error,clrs(4)
  15.   INTEGER maxtbank,count,chgtime
  16. :SET_PARAMETERS
  17.   maxtbank = 90                      ; max bank time - could be from a file
  18.   chgtime = 0                        ;                 but would be slower
  19.   clrs(1) = "@X79"                   ; Command instruction color
  20.   clrs(2) = "@X7B"                   ; Time text color
  21.   clrs(3) = "@X7C"                   ; Error text color
  22.   clrs(4) = "@X7E"                   ; General text color
  23.  
  24.  
  25. :START
  26.   cmdline = TOKENSTR()               ; store commandline
  27.     TOKENIZE cmdline
  28.     count = 1                        ; Used while loops rather than
  29.     GETTOKEN cmdtoken(count)         ; for loobs as the while created 20 bytes
  30.     WHILE (cmdtoken(count) != "") DO ; less code
  31.       count = count + 1              ;
  32.       GETTOKEN cmdtoken(count)       ;
  33.     ENDWHILE                         ;
  34.   GETUSER
  35.   IF (LEFT(U_NOTES(4),4)<>"BANK") THEN   ; is bank setup in NOTES if not
  36.      usertoken(1) = "BANK"               ; do it
  37.      usertoken(2) = "TIME"               ;
  38.      usertoken(3) = 0
  39.   ELSE
  40.      TOKENIZE U_NOTES(4)                 ; Get bank info from NOTES
  41.      count = 1                           ;
  42.      GETTOKEN usertoken(count)           ;
  43.      WHILE (usertoken(count) != "") DO   ;
  44.        count = count + 1                 ;
  45.        GETTOKEN usertoken(count)         ;
  46.      ENDWHILE                            ;
  47.   ENDIF
  48.   IF (LEFT(cmdtoken(1),1) = "D") THEN    ; Look for "D"isplay
  49.      PRINTLN  "@POS:10@",clrs(1),usertoken(1)," ",usertoken(2),":  ",clrs(2),usertoken(3)," min."
  50.   ELSEIF (LEFT(cmdtoken(1),1) = "S") DO  ; Look for "S"ave
  51.      IF (LEFT(cmdtoken(2),1) = "T")  DO  ; Look for "T"ime
  52.        chgtime = cmdtoken(3)
  53.      ELSE
  54.        error = clrs(3)+"Incorrect command syntex - "+clrs(1)+"BANK SAVE TIME nn"
  55.        GOTO EXIT
  56.      ENDIF
  57.      IF (chgtime > (MINLEFT() -5)) DO        ; check time remaining after save
  58.        error = (MINLEFT()-5)
  59.        error = (clrs(4)+"The maximum time available to save is "+clrs(1)+error+clrs(4)+" min.")
  60.        GOTO EXIT
  61.      ELSEIF ((chgtime+usertoken(3)) > maxtbank) DO    ; check maxallowed time
  62.        error = (maxtbank - usertoken(3))
  63.        error = (clrs(4)+"The maximum time you can add to the bank is "+clrs(1)+error+clrs(4)+" min.")
  64.        GOTO EXIT
  65.      ELSE
  66.        usertoken(3) = chgtime+usertoken(3)
  67.        U_NOTES(4) = usertoken(1)+" "+usertoken(2)+" "+usertoken(3)
  68.        PUTUSER U_NOTES(4)                 ; update bank
  69.        ADJTIME -chgtime                   ; update board time
  70.      ENDIF
  71.      PRINTLN "@POS:10@",clrs(2),chgtime,clrs(4)," min. added to bank"
  72.   ELSEIF (LEFT(cmdtoken(1),1) = "R") THEN ; look for "R"estore
  73.      IF (LEFT(cmdtoken(2),1) = "T") DO
  74.        chgtime = cmdtoken(3)
  75.      ELSE
  76.        error = clrs(3)+"Incorrect command syntex - "+clrs(1)+"BANK RESTORE TIME nn"
  77.        GOTO EXIT
  78.      ENDIF
  79.      IF (chgtime > usertoken(3)) DO        ; check available time - no limits
  80.        error = (usertoken(3))              ;                 on total restore
  81.        error = (clrs(4)+"The maximum time available to restore is "+clrs(1)+error+clrs(4)+" min.")
  82.        GOTO EXIT
  83.      ELSE
  84.        usertoken(3) = usertoken(3) - chgtime
  85.        U_NOTES(4) = usertoken(1)+" "+usertoken(2)+" "+usertoken(3)
  86.        PUTUSER U_NOTES(4)                  ; update bank
  87.        ADJTIME chgtime                     ; update board time
  88.      ENDIF
  89.        PRINTLN "@POS:11@",clrs(2),chgtime,clrs(4)," min. added to use"
  90.   ELSE
  91.      PRINTLN "@POS:4@",clrs(4),"Syntex is: ",clrs(1),"BANK DISPLAY,clrs(4), ",clrs(1),"BANK SAVE TIME nn",clrs(4),", or ",clrs(1),"BANK RESTORE TIME ",clrs(1),"nn"
  92.   ENDIF
  93. :EXIT
  94.   IF (ERROR != "") THEN
  95.     PRINTLN error
  96.   ENDIF
  97.   END
  98.